﻿using System.Collections.Generic;
using Utility.Persistence_Service;

namespace Application_Core.Kunde_Component.Data_Access_Layer
{
    internal interface KundeRepository : Repository<Kunde>
    {
        /// <summary>
        /// Gibt den Kunden der gegebenen Kundennummer zurück.
        /// </summary>
        /// <param name="kundennummer">Kunden-Nummer</param>
        /// <returns>Kunde | null</returns>
        Kunde FindByNummer(int kundennummer);

        /// <summary>
        /// Gibt den technischen Schlüssel eines Kunden anhand der gegebenen Kundennummer zurück.
        /// </summary>
        /// <param name="kundennummer">Kunden-Nummer</param>
        /// <returns>KundeId | null</returns>
        int? FindIdByNummer(int kundennummer);

        /// <summary>
        /// Gibt alle Kunden mit gegebenen Nachnamen zurück.
        /// </summary>
        /// <param name="nachname">Kunden-Nachname</param>
        /// <returns>List<Kunde></returns>
        List<Kunde> FindByNachname(string nachname);
    }
}
